package com.wayhome.srpingbootmybatis.excelListener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.wayhome.srpingbootmybatis.entity.FixmedinsDTO;
import com.wayhome.srpingbootmybatis.excel.Dr9225AccessInfo;
import com.wayhome.srpingbootmybatis.mapper.FixmedinsMapper;
import com.wayhome.srpingbootmybatis.utils.AdmdvsUtil;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;


@Slf4j
public class Dr9225AccessListener extends AnalysisEventListener<Dr9225AccessInfo> {

    private FixmedinsMapper fixmedinsMapper;

    public Dr9225AccessListener(FixmedinsMapper fixmedinsMapper) {
        this.fixmedinsMapper = fixmedinsMapper;
    }


    private List<Dr9225AccessInfo> list = new ArrayList<>();

    public List<Dr9225AccessInfo> getList() {
        return list;
    }

    public void setList(List<Dr9225AccessInfo> list) {
        this.list = list;
    }

    @Override
    public void invoke(Dr9225AccessInfo dr9225AccessInfo, AnalysisContext analysisContext) {
        String fixmedinsCode = dr9225AccessInfo.getFixmedinsCode();
        FixmedinsDTO fixmedinsDTO = fixmedinsMapper.queryMedinsNameByCode(fixmedinsCode);
        dr9225AccessInfo.setFixmedinsName(fixmedinsDTO.getFixmedinsName());

        String fixBlngAdmdvs = fixmedinsDTO.getFixBlngAdmdvs();
        String admdvs = AdmdvsUtil.replaceAdmdvs(fixBlngAdmdvs);
        dr9225AccessInfo.setAdmdvs(admdvs);
        dr9225AccessInfo.setAdmdvsName(getAdmdvsName(admdvs));
        list.add(dr9225AccessInfo);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }

    public FixmedinsMapper getFixmedinsMapper() {
        return fixmedinsMapper;
    }

    private String getAdmdvsName(String admdvs) {
        if ("130100".equals(admdvs)) {
            return "石家庄";
        }
        if ("130200".equals(admdvs)) {
            return "唐山";
        }
        if ("130300".equals(admdvs)) {
            return "秦皇岛";
        }
        if ("130400".equals(admdvs)) {
            return "邯郸";
        }
        if ("130500".equals(admdvs)) {
            return "邢台";
        }
        if ("130600".equals(admdvs)) {
            return "保定";
        }
        if ("130700".equals(admdvs)) {
            return "张家口";
        }
        if ("130800".equals(admdvs)) {
            return "承德";
        }
        if ("130900".equals(admdvs)) {
            return "沧州";
        }
        if ("131000".equals(admdvs)) {
            return "廊坊";
        }
        if ("131100".equals(admdvs)) {
            return "衡水";
        }
        if ("139900".equals(admdvs)) {
            return "省本级";
        }
        if ("139903".equals(admdvs)) {
            return "华油";
        }
        if ("139904".equals(admdvs)) {
            return "铁路";
        }
        if ("139905".equals(admdvs)) {
            return "电力";
        }
        if ("133100".equals(admdvs)) {
            return "雄安";
        }
        if ("130181".equals(admdvs)) {
            return "辛集";
        }
        if ("130682".equals(admdvs)) {
            return "定州";
        }
        return "";
    }
}
